Component({
  options: {
    addGlobalClass: true,  // 使用全局样式
    pureDataPattern: /^_/  // 纯数据字段
  },
  properties: {
    // 新增验证状态属性
    status: {
      type: String,
      value: 'waiting' // waiting | validating | valid | invalid
    },
    disabled: { // 是否禁用按钮
      type: Boolean,
      value: false
    },
    loading: { // 是否显示loading状态
      type: Boolean,
      value: false
    },
    loadingText: { // loading提示文字
      type: String,
      value: '提交中...'
    },
    showMask: { // 是否显示遮罩层
      type: Boolean,
      value: true
    },
    debounceTime: { // 防抖时间(ms)
      type: Number,
      value: 1000
    }
  },

  methods: {
    async handleTap() {
      this.triggerEvent('validate', {}); // --调用父组件的前置验证
      if (this.data.loading) return;
      // 状态为无效时直接返回
      if (this.data.status !== 'valid') return;
      // 已验证通过，触发提交
      this.setData({
        loading: true
      });
      this.triggerEvent('submit');
    },

    // 外部可调用的方法
    startLoading() {
      this.setData({
        loading: true
      });
    },

    stopLoading() {
      this.setData({
        loading: false
      });
    }
  }
})